Various electronic devices, such as mobile telecommunication terminals, portable computers and PDAs require access to security related components such as application programs, cryptographical keys, cryptographical key data material, intermediate cryptographical calculation results, passwords, authentication of externally downloaded data etc. It is often necessary that these components, and the processing of them, is kept secret within the electronic device. Ideally, they shall be known by as few people as possible. This is due to the fact that a device, for example a mobile terminal, could possibly be tampered with if these components are known. Access to these types of components might aid an attacker with the malicious intent to manipulate a terminal.
Therefore, a secure execution environment is introduced in which environment a processor within the electronic device is able to access the security related components. Access to the secure execution environment, processing in it and exit from it should be carefully controlled. Prior art hardware comprising this secure environment is often enclosed within a tamper resistant packaging. It should not be possible to probe or perform measurements and tests on this type of hardware which could result in the revealing of security related components and the processing of them.
Providers of application programs encrypt the programs so as to create tamper resistant software. Only when the application program code is executed in a secure environment, is the code decrypted and managed as plain text.
David Lie et al, “Architectural Support for Copy and Tamper Resistant Software”, published in Proceedings of the 9th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-IX), November, 2000, Pp 169-177 discloses a system called XOM, execute Only Memory. Every XOM processor has a public/private key pair, and the private key is kept in hardware and known only to the processor, not to the owner of the processor or anyone else. When XOM software is purchased, the software undergoes encryption, by means of this public/private key pair. The executable code is decrypted by the processor just before execution and the plaintext code never leaves the processor chip. A problem with this type of architecture is that the application providers have very limited possibilities to define the way the application is handled during application installation.